package chapter05

/**
  * create by undeRdoG on  2021-05-30  21:09
  * 凡心所向，素履以往，生如逆旅，一苇以航。
  */
object Test08_Practice {

  def main(args: Array[String]): Unit = {
    val fun = (v1: Int,v2: String,v3: Char) => {
      if(v1 == 0 && v2 == "" && v3 == '0') false else true
    }

    println(fun(1,"",'2'))



   /* 定义一个函数 func，它接收一个 Int 类型的参数，返回一个函数（记作 f1）。
    它返回的函数 f1，接收一个 String 类型的参数，同样返回一个函数（记作 f2）。函数 f2 接
    收一个 Char 类型的参数，返回一个 Boolean 的值。
    要求调用函数 func(0) (“”) (‘0’)得到返回值为 false，其它情况均返回 true。*/

    def func(v1: Int): String=>(Char => Boolean) ={
      def f1(v2: String): Char=>Boolean ={
        def f2(v3: Char): Boolean = {
          if(v1 == 0 && v2 == "" && v3 == '0') false else true
        }
          f2
      }
      f1
    }


    // 柯里化
    def fun2(i: Int)(s: String)(c: Char): Boolean = {
      if(i == 0 && s == "" && c == '0') false else true
    }
  }
}
